﻿using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DAO
{
    public class DAOTipoDocumento
    {
        public static List<Entidad.EntidadTipoDocumento> getTodas()
        {
            List<Entidad.EntidadTipoDocumento> lista = new List<Entidad.EntidadTipoDocumento>();
            AccesoDato ad = new AccesoDato();
            try
            {
                String sql = "Select Id_tipo_documento, Nombre from tipo_documento order by nombre";
                SqlDataReader dr = ad.ejecutarSql(sql, null);

                while (dr.Read())
                {
                    Entidad.EntidadTipoDocumento e = new Entidad.EntidadTipoDocumento();
                    e.id_tipo_documento = int.Parse(dr["id_tipo_documento"].ToString());
                    e.nombre = dr["nombre"].ToString();
                    lista.Add(e);
                }
            }
            catch (ApplicationException)
            {
                throw new ApplicationException("Error al obtener todos los tipos documentos");
            }
            finally
            {
                ad.cerrarDR();
            }

            return lista;
        }

        public static Entidad.EntidadTipoDocumento buscar(int id_tipo_documento)
        {
            Entidad.EntidadTipoDocumento e = new Entidad.EntidadTipoDocumento();
            AccesoDato ad = new AccesoDato();
            try
            {
                String sql = "select id_tipo_documento, nombre from tipo_documento where id_tipo_documento = @id_tipo_documento";
                SqlParameter parametro = new SqlParameter("id_tipo_documento", id_tipo_documento);
                List<SqlParameter> parametros = new List<SqlParameter>();
                parametros.Add(parametro);
                SqlDataReader dr = ad.ejecutarSql(sql, parametros);
                while (dr.Read())
                {
                    e.id_tipo_documento = int.Parse(dr["id_tipo_documento"].ToString());
                    e.nombre = dr["nombre"].ToString();
                }
            }
            catch (ApplicationException)
            {

                throw new ApplicationException("Error al obtener el tipo documento");
            }
            finally
            {
                ad.cerrarDR();
            }
            return e;
        }
    }
}
